from fastapi import APIRouter, Request
from pydantic import BaseModel
from utils import create_json_response
import json

router = APIRouter()

class AppIdRequest(BaseModel):
    id: str  # 应用短ID名称

@router.post("/app/id")
async def get_app_url(request: Request):
    """应用短ID路由 - 根据短ID返回完整应用地址"""
    
    # 读取原始数据流
    body = await request.body()
    
    # 尝试解析数据流中的id参数
    try:
        # 如果是JSON格式
        data = json.loads(body.decode('utf-8'))
        app_id = data.get('id', '')
    except:
        # 如果是表单格式
        form_data = await request.form()
        app_id = form_data.get('id', '')
    
    # 短ID到完整URL的映射
    app_urls = {
        'one': 'https://weui.io/',      # 小程序应用
        'two': 'https://weui.io/',                     # H5应用
        'demo': 'https://weui.io/',              # 演示应用
        'test': 'https://weui.io/',              # 测试应用
        'prod': 'https://weui.io/',              # 生产应用
        'uni': 'https://weui.io/'      # 另一个小程序
    }
    
    # 根据短ID返回对应的完整URL
    url = app_urls.get(app_id, 'https://weui.io/')  # 默认返回H5地址
    
    return create_json_response({
        "url": url
    })
